--[[
红果APP - 主脚本入口
功能：初始化全局环境并运行主逻辑
--]]

-- 导入需要的模块
local 模块列表 = {
    -- 日志和调试模块
    初始化日志系统 = "logging_and_debugging.初始化日志系统",
    调试输出 = "logging_and_debugging.调试输出",
    
    -- 时间控制模块
    初始化时间 = "time_control.初始化时间",
    检查福利时间 = "time_control.检查福利时间",
    获取运行时间 = "time_control.获取运行时间",
    
    -- 点赞和收藏模块
    智能ID定位按钮 = "like_and_collect.智能ID定位按钮",
    随机收藏点赞 = "like_and_collect.随机收藏点赞",
    
    -- 滚动和页面操作模块
    随机上滑 = "scroll_and_page_operations.随机上滑",
    
    -- 福利界面处理模块
    处理福利界面 = "welfare_interface.处理福利界面"
}

-- 加载模块函数
local function 加载模块(模块名, 路径)
    local 成功, 模块 = pcall(function()
        return require(路径)
    end)
    
    if 成功 then
        _G[模块名] = 模块
        return true
    else
        print("加载模块失败: " .. 模块名 .. ", 错误: " .. tostring(模块))
        return false
    end
end

-- 初始化全局环境
local function 初始化环境()
    -- 加载所有模块
    local 加载成功数量 = 0
    local 模块总数 = 0
    
    for 名称, 路径 in pairs(模块列表) do
        模块总数 = 模块总数 + 1
        if 加载模块(名称, 路径) then
            加载成功数量 = 加载成功数量 + 1
        end
    end
    
    -- 初始化日志系统
    local 日志初始化成功 = false
    if _G.初始化日志系统 then
        日志初始化成功 = _G.初始化日志系统()
    end
    
    -- 初始化时间模块
    if _G.初始化时间 then
        _G.初始化时间()
    end
    
    -- 输出初始化状态
    local 函数名 = 日志初始化成功 and "信息日志" or "print"
    _G[函数名]("===== 红果APP脚本初始化 =====")
    _G[函数名]("模块加载: " .. 加载成功数量 .. "/" .. 模块总数)
    _G[函数名]("日志系统: " .. (日志初始化成功 and "已启用" or "未启用"))
    _G[函数名]("================================")
    
    return 加载成功数量 == 模块总数
end

-- 运行主循环
local function 主循环()
    local 运行时间上限 = 60 * 60  -- 默认运行1小时
    local 循环计数 = 0
    local 继续运行 = true
    
    _G.信息日志("开始主循环")
    
    -- 主循环
    while 继续运行 do
        循环计数 = 循环计数 + 1
        _G.信息日志("循环 #" .. 循环计数)
        
        -- 检查运行时间
        local 当前运行时间 = _G.获取运行时间()
        if 当前运行时间 >= 运行时间上限 then
            _G.信息日志("达到运行时间上限: " .. 当前运行时间 .. " 秒")
            继续运行 = false
            break
        end
        
        -- 随机上滑浏览内容
        for i = 1, math.random(3, 8) do
            _G.随机上滑()
            sleep(math.random(2000, 5000))
        end
        
        -- 随机点赞和收藏
        _G.随机收藏点赞()
        
        -- 检查是否获取福利
        if _G.检查福利时间() then
            _G.信息日志("福利时间已到，处理福利界面")
            _G.处理福利界面()
        end
        
        -- 防止循环过快
        sleep(math.random(1000, 3000))
    end
    
    _G.信息日志("主循环结束")
end

-- 异常处理
local function 安全运行主程序()
    local 成功, 错误 = pcall(function()
        -- 初始化环境
        初始化环境()
        
        -- 运行主循环
        主循环()
    end)
    
    if not 成功 then
        local 错误消息 = "脚本运行出错: " .. tostring(错误)
        if _G.错误日志 then
            _G.错误日志(错误消息)
        else
            print(错误消息)
        end
    end
end

-- 运行主程序
安全运行主程序() 